1. Field of the Invention
The present invention generally relates to expert computer systems, and more particularly to an improved method of managing an expert business system that relies on a large number of business rules, which method facilitates an understanding of the interactions of the business rules, and simplifies revision of the rules as required by changes in business procedures and policies.
2. Description of Related Art
Businesses use a wide variety of computer hardware and software products, for many different purposes. The hardware of a typical business information system includes a multitude of interconnected computers, printers, scanners, communications equipment, and other peripheral devices, allowing the business to automate much of the processing of its business information. The computers may be of different types, such as mainframes, minicomputers, or network servers supporting client workstations (personal computers, or PCs), or some combination of the foregoing. Business software includes (without limitation) accounting, word processing, database management, communications, publishing, and multimedia presentation software, as well as payroll, financial planning, project management, decision and support, personnel records, and office management software and further including specific business applications such as insurance claims and losses, credit approval, order entry and inventory, etc. All of these programs can run on a variety of platforms, including different operating systems. Businesses often have an Information Services or Information Technology (IT) department which is responsible for the overall management, support and planning of the company's information system needs.
Many businesses have found that as they undergo changes, their IT departments have been unable to keep up with the needed support of their business applications. The changes may be a result of market forces, governmental regulation, or policy switches within the company. This problem is further exacerbated by the swift pace of innovation in the computer industry. Some businesses and their IT departments are addressing this problem by gradually re-working their applications to externalize the variability in these systems into "business rules." The idea is to have business rules automatically implement the established procedures of a company. Business rules might be used to assist in various business decisions, such as whether to increase (or decrease) staffing, how many resources to allocate to a particular project, or when to introduce a new product to the market. The ultimate goal of these systems is to allow business domain experts, not programmers, to change the way the system works, as the needs of a business change. One approach to doing this is to utilize object-oriented expert systems.
Object-oriented systems are developed using object-oriented programming languages in which each variable, function, etc., can be considered an object of a particular "class," having particular attributes. C++ and Java are examples of object-oriented programming languages, and provide advanced programming features such as polymorphism, encapsulation, and inheritance. An object-oriented application that makes decisions or solves problems by using analytical rules, is often referred to as an expert system. In this context, a rule is a logical statement that can be used to verify a supposition, and can further be used (e.g., by way of syllogism) to reach a conclusion. Each rule conforms to the properties of the class associated with rule objects. Expert, rule-based systems typically use two components, a knowledge base and an inference engine, to make a decision. Expert systems that deal with business applications use business rules.
Many older business applications contain rudimentary business rules inherent in the program control logic. However, since these applications cannot adjust to the dynamically changing business conditions, the flexibility of such business rules is severely limited. More recently, an alternative approach has been formulated, which allows developers to create modular business rules, and allows business experts to specify rule parameters using a high-level business rules language. Another approach is to use object-oriented systems to encapsulate the "rules" using a strategy pattern (or method template) from a pattern book. This approach is not dynamic and requires code changes to implement.
Whichever approach is taken, as more applications are converted into rules-driven systems, the number of business rules known to the system rapidly expands, and can become incredibly complicated. The number of the rules can become so large, and their nature so intertwined, that the business domain expert who is responsible for administering the rules becomes unable to accurately reason about how the rules come into play and interact with one another, and unable to predict the complete outcomes and/or side effects of a rule change, particularly if competing rules might mandate different outcomes based on a single set of facts.
In light of the foregoing, it would be desirable to devise a method and system which provides an increased understanding of which business rules apply to various control parameters, and how these identified rules interact to produce a desired result. It would be further advantageous if the method were to allow the business domain expert seeking to make a change to the system, to reduce the effective size of the rule space for a given context.